package com.sc.nft.dao;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.sc.nft.entity.SaasTaskMeetConditions;
import com.sc.nft.mapper.SaasTaskMeetConditionsOptionMapper;
import com.sc.nft.entity.SaasTaskMeetConditionsOption;
import com.sc.nft.service.SaasTaskMeetConditionsOptionService;
import org.springframework.stereotype.Service;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Repository;
import org.web3j.abi.datatypes.Int;

import java.util.List;

/**
 * 任务条件表的扩展,用来记录例如商品的单选/多选项.(SaasTaskMeetConditionsOption)表Dao层
 *
 * @author 王伟成
 * @since 2024-01-11 15:09:14
 */
@Slf4j
@Repository
public class SaasTaskMeetConditionsOptionDao extends ServiceImpl<SaasTaskMeetConditionsOptionMapper, SaasTaskMeetConditionsOption> {

    public List<SaasTaskMeetConditionsOption> getByTaskId(Long saasTaskId, Long meetConditionsId, Integer type) {
        return this.lambdaQuery().eq(SaasTaskMeetConditionsOption::getSaasTaskId, saasTaskId).eq(meetConditionsId!=null,SaasTaskMeetConditionsOption::getMeetConditionsId, meetConditionsId).eq(SaasTaskMeetConditionsOption::getType, type).list();
    }

    public List<SaasTaskMeetConditionsOption> getByTaskIdAndConditionId(Long saasTaskId, Long conditionId, Integer type) {
        return this.lambdaQuery().eq(SaasTaskMeetConditionsOption::getSaasTaskId, saasTaskId).eq(SaasTaskMeetConditionsOption::getConditionId, conditionId).eq(SaasTaskMeetConditionsOption::getType, type).list();
    }

    public List<SaasTaskMeetConditionsOption> getByTaskIdAndType(Long taskId, Integer type) {
        return this.lambdaQuery().eq(SaasTaskMeetConditionsOption::getSaasTaskId, taskId).eq(SaasTaskMeetConditionsOption::getType, type).list();
    }
    public void deleteBySaasTaskIdAndType(Long taskId, Integer type) {
        this.lambdaUpdate().eq(SaasTaskMeetConditionsOption::getSaasTaskId, taskId).eq(SaasTaskMeetConditionsOption::getType, type).remove();
    }
    public void deleteBySaasTaskId(Long taskId) {
        this.lambdaUpdate().eq(SaasTaskMeetConditionsOption::getSaasTaskId, taskId).remove();
    }
}
